package secret.santa.client;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * The async counterpart of <code>GreetingService</code>.
 */
public interface SantaServiceAsync 
{
	void login(String username, String paswoord, AsyncCallback<Long> callback);
	void login(long sid, AsyncCallback<Boolean> callback);
	void getEvents(Long sid, AsyncCallback<CS_Event[]> callback);
	void addEvent(Long sid, String name, String Description, AsyncCallback<Boolean> callback);
	void getUsers(Long sid, AsyncCallback<CS_User[]> callback);
	void addUser(Long sid, String name, String password, String fullName, String email, AsyncCallback<Boolean> callback);
	void editEvent(Long sid, String key, String name, String desc,
			AsyncCallback<Boolean> callback);
	void editUser(Long sid, String key, String username, String password,
			String fullName, String email, AsyncCallback<Boolean> callback);
	void removeUser(Long sid, String key, AsyncCallback<Boolean> callback);
	void removeEvent(Long sid, String key, AsyncCallback<Boolean> callback);
	void queryEvent(Long sid, String key,AsyncCallback<EventQuery> callback);
	void addUsersToEvent(Long sid, String[] userKeys, String eventKey,
			AsyncCallback<Boolean> callback);
	void generateList(Long sid, String eventKey, AsyncCallback<Boolean> callback);
	void makeCouple(Long sid,  String name1, String name2,
			AsyncCallback<Boolean> callback);
	void getSecretData(Long sid, AsyncCallback<SecretData> callback);
	void editWishList(Long sid, String eventEntryKey, String wishList,
			AsyncCallback<Boolean> callback);
	void removeUsers(Long sid, String[] keys, AsyncCallback<Boolean> callback);
}
